home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Libris Britannia 4
/
science library(b).zip
/
science library(b)
/
CUGUK
/
GAMES
/
C059B.ZIP
/
TOP.ZIP
/
INSTALL.UNI
< prev
next >
Wrap
Text File
|
1990-07-18
|
6KB
|
110 lines
Instructions for installing NetHack 3.0 on a UNIX system
========================================================
1. Make sure all the NetHack files are in the appropriate directory structure.
You should have a main directory with subdirectories src, include, auxil,
amiga, mac, vms, and others. If you do not follow this structure, the
Makefiles will not function properly. All the UNIX .c files and the
source Makefile belong in src; all the .h files belong in include; other
assorted data files belong in auxil. The UNIX version does not use any
files from the other directories, except possibly for random.c from
others, as explained in step 6. (A more detailed explanation of the
directory structure may be found in Files, which should be in the top
directory.)
2. Your Makefiles may still have tags on the end of them. Makefile.top should
become Makefile in the top directory, Makefile.src Makefile in the src
subdirectory, and Makefile.auxil Makefile in the auxil subdirectory.
3. Go to the include subdirectory and edit config.h according to the comments
to match your system and desired set of features. Similarly edit
unixconf.h.
4. If you want to, look through system.h. This file attempts to match the
types for system calls and library routines with various flavors of
operating systems. Leaving this file alone is unlikely to cause worse
problems than lint errors, but it's worth checking if you get compile
errors, especially if you have an unusual system.
5. Go to the src subdirectory and look at the top of topten.c. You may want
to change the definitions of PERSMAX and PERS_IS_UID here to get different
behavior from the high score list.
6. Edit the top section of the src Makefile. (If you are doing a full
recompile, or if you got your files from someplace besides the official
distribution, type 'touch makedefs.c' to make sure certain files (onames.h,
pm.h) get remade instead of relying on the potentially troublesome
timestamps.) If you elected to use the provided (BSD) random routines,
move or link random.c into the src subdirectory from others. Then type
'make' in src and go get a cup of coffee or take a nap. You should now
have created the game executable.
7. Go back to the main directory and edit that Makefile, explaining where you
want everything to be installed. The Makefile assumes you want to run
NetHack setuid 'games' to cut down on possible tampering; it's fairly
straightforward to comment out the appropriate chmod if you don't want that,
or to change any of the rest of the procedure. Also edit auxil/nethack.sh
at this point. Type 'make spec_levs' from the main directory to set up
files for some of the special levels. Then become root if necessary and
type 'make install'. Everything should now be set.
Notes:
1. A number of systems, such as Xenix, support both the termcap and terminfo
terminal capability libraries. Make sure that the TERMINFO definition in
config.h and the TERMLIB definition in the source Makefile correspond.
If spurious characters appear on the screen while kicking, zapping, etc.,
it is likely that you have linked the source to the wrong library or
mistakenly defined/undefined TERMINFO. If your terminal library does not
provide suitable delays, NetHack will try to fake its own if you set the
nonull option.
2. Save files and bones files from previous versions will not work with
NetHack 3.0. Don't bother trying to keep them. Record (score) files
from before 3.0 patchlevel 7 will almost work, but you need to make one
change manually to them: At the end of each line is a word or phrase
specifying what killed the player. Change the string to start with the
words "killed by", "killed by a", or "killed by an" (whichever is
appropriate). If the death was petrification, it should read "petrified
by" instead of "killed by". Don't change "starvation", "quit", "escaped",
or "ascended".
3. If you insisted on doing the final installation by hand, you probably
forgot to make a save directory. If you don't go back and do this, you
won't be able to save games.
4. To install an update of this version of NetHack after changing something,
type 'make update' from the main directory. If you created the new
version yourself, it should be safe to use 'make update' as long as you
did not add, delete, or reorder monsters or objects and you did not change
the format of saved level files. If you did any of these things, you
should also remove any saved games and bones levels. (Trying to use such
files often produces amusing but useless confusions on the game's part.)
5. Xenix/286's lex generates a faulty lexical analyser from lev_comp.l.
The beta-release of flex 2.1 (avaliable from uunet, osu-cis,
prep.ai.mit.edu, etc.) can be used to generate the lexer.
The only change to flex is to change "#define yyleng (yy_cp - yy_bp)"
to "#define yyleng (int)(yy_cp - yy_bp)" in flex.skel.
Flex is not needed with Xenix/386, as its lex generates a proper lexical
analyser. [Xenix instructions by J.T. Conklin]
6. If you get unexplained deaths by trickery, you are probably running
NetHack on a bunch of workstations, but you have overlooked the NETWORK
definition in unixconf.h that is necessary in that configuration.
7. If you are trying to compile NetHack on an AT&T 3B that is running an
OS earlier than SVR3, you are likely to have problems with overflowing
symbol tables. This can be worked around by editing the source Makefile
to make the Sys.3B2 target work more like the SysV-AT target, adding
-DDUMB to CFLAGS and DUMB.Setup to the Sys.3B2 dependency line. The
compiler provided with later versions of the OS has a large enough
symbol table that it does not need this workaround.
8. If NetHack seems to compile fine, starts up, allows you to pick a
character, and then either hangs or gets a segmentation fault, you
should try changing the schar and uchar definitions in config.h to
short ints. This problem is known to occur on the AT&T 3B series,
Silicon Graphics Irises, and IBM PC/RT's running AIX, and may occur
on other computers as well.